// import print from 'print-js'
import { getLodop } from "./LodopFuncs";
import { delExpress } from "@/api/api/order";
import axios from "axios";
const dyArray = [];
export function route(res) {
  if (res.type == "1") {
    dy(res.data);
  }
}
async function dy(data) {
  if (dyArray.includes(data.code)) {
    return;
  }
  var LODOP = await getLodop();
  console.log(LODOP,'asdasdasd');
  //设置打印机的名称
  console.log(LODOP,'22222');
  await LODOP.PRINT_INIT("PDF打印");
  //  await LODOP.SET_PRINTER_INDEX("http://localhost:8080/profile/upload/pdf/fm_76130_standard_YCMFSV33NQE9.pdf");
  console.log(process.env.VUE_APP_BASE_API + data.url);
  await getFileBase64(process.env.VUE_APP_BASE_API + data.url).then(
    async (res) => {
      await LODOP.SET_PRINT_PAGESIZE(1, 0, 0, "A7"); //1为纵向 2为横向
      await LODOP.ADD_PRINT_PDF(
        0,
        0,
        76,
        130,
        res?.split("data:application/pdf;base64,")[1]
      );
      await LODOP.PRINT();
      await delExpress({code:data.code});
      await dyArray.push(data.code)
      // // 获取打印机状态
      // const printer = LODOP.GET_PRINTER_NAME(-1); // 获取当前默认打印机名称
      // const printerStatus = LODOP.GET_PRINTER_STATUS(printer); // 获取当前打印机状态
      // console.log(printerStatus, "printerStatus");
      // // this.checkPrinterStatus(status)
  

      // let printResult = await LODOP.PRINT();
      // if (printResult) {
      //   await delExpress({ code: data.code }); // 删除队列中的第一个
      //   dyArray.push(data.code);
      // } else {
      //   console.log("打印失败");
      // }

      // //   LODOP.On_Return = async function (TaskID, Value) {
      // //     console.log(value,'打印value');
      // //     // 如果打印成功
      // //     if (Value === 1) {
      // //         // 打印成功时调用 delExpress 接口
      // //         await delExpress({ code: data.code });
      // //         await dyArray.push(data.code);
      // //     } else {
      // //         // 打印失败时的处理逻辑
      // //         console.log('打印失败，错误码：', Value);
      // //         // 在这里可以添加适当的处理代码，比如重试打印或者记录错误日志等
      // //     }
      // // };
      // // await LODOP.PRINT();
    }
  );
  // await LODOP.SET_PRINT_PAGESIZE(1, 0, 0, 'A7')//1为纵向 2为横向
  // await LODOP.SET_PRINTER_INDEX("Deli GE430-W");
  // await LODOP.ADD_PRINT_PDF(10,15,60,130,process.env.VUE_APP_BASE_API+data.url);//打印机Deli GE430-W

  // //打印预览
  // // LODOP.PREVIEW();
  // //打印
  // await LODOP.PRINT();
  // await delExpress({code:data.code});//删除队列中的第一个
  // dyArray.push(data.code)
}

async function checkPrinterStatus(printerIndex) {
  var LODOP = await getLodop();

  if (status === 0) {
    console.log("打印机状态正常");
    return true;
  } else {
    console.log("打印机状态异常: 状态代码 " + status);
    return false;
  }
}
/**
 * 加载pdf 并转为base64
 * @param {string} pdfUrl[pdf的链接]
 */
const getFileBase64 = async (pdfUrl) => {
  let fileData = null;
  try {
    fileData = await axios({
      method: "get",
      url: pdfUrl, // 请求地址
      responseType: "blob", // 指明服务器返回的数据类型
    });
  } catch {
    fileData = null;
  }
  console.log(fileData, "fileData");
  return new Promise((resolve, reject) => {
    if (fileData && fileData.data) {
      const file = new Blob([fileData.data], { type: "application/pdf" });
      const reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = () => resolve(reader.result);
      reader.onerror = (error) => reject(error);
    } else {
      reject("文件读取错误");
    }
  });
};
